package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_tomalistaalumnos;
import paq_entidades.enti_alumno;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_tomalistalumno implements interfaz_tomalistaalumnos {

    enti_variables v = new enti_variables();
    Ejecutarsql ejec = new Ejecutarsql();
    enti_alumno enti = new enti_alumno();

    @Override
    public void insertar(String codigo, String mes, String dia) {
        enti.setPe_codigo(codigo);
        enti.setMes(mes);
        v.setDia(dia);
        String sql = "insert into asistencia_alumno(asis_codigo,asis_fecha,asis_numero_mes,asis_observacion,asis_dia,asis_estado1,asis_estado2,al_cedula,asis_fecharegistro) select concat('as',asist.NextVal),(select sysdate from dual) as fecha,'" + enti.getMes() + "','Sin observacion','" + v.getDia() + "',0,0,  al.AL_Cedula, (select sysdate from dual) as fecha from alumno al,PROMOCION prom,FECHA_DIA fdi,PROFESOR prof where prom.PROM_CODIGO=al.PROM_CODIGO and prom.PROM_CODIGO=fdi.PROM_CODIGO and fdi.PR_CEDULA=prof.PR_CEDULA and prof.PR_CEDULA='" + codigo + "' and to_char(fdi.FD_FECHA,'yyyy-mm-dd')=to_char((select sysdate from dual),'yyyy-mm-dd')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl comprobarlistaasistencia(String codigo) {
        try {
            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select asi.AL_Cedula,asi.ASIS_FECHAREGISTRO from alumno al,PROMOCION pro, FECHA_DIA fd, PROFESOR prof,asistencia_alumno asi where al.PROM_CODIGO=pro.PROM_CODIGO and pro.PROM_CODIGO= fd.PROM_CODIGO and fd.PR_CEDULA=prof.PR_CEDULA and al.AL_Cedula=asi.AL_Cedula and to_char(asi.ASIS_FECHAREGISTRO,'yyyy-MM-dd')=to_char((select sysdate from dual),'yyyy-MM-dd') and to_char(asi.ASIS_FECHAREGISTRO,'yyyy-MM-dd')=to_char(fd.FD_FECHA,'yyyy-MM-dd') and prof.PR_CEDULA='" + codigo + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_tomalistalumno.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error al obtener registro");
        }
        return v.crs2;

    }

    @Override
    public CachedRowSetImpl cargarlistaalumnos(String codigo) {
        try {

            v.crs3 = (CachedRowSetImpl) ejec.rellena2("select distinct asi.AL_Cedula,(al.AL_APELLIDOS||' '||al.AL_NOMBRES) as al_apellidos,asi.ASIS_ESTADO1,asi.ASIS_ESTADO2,asi.ASIS_OBSERVACION,asi.ASIS_FECHAREGISTRO from alumno al,PROMOCION prom,FECHA_DIA fdi,PROFESOR prof,asistencia_alumno asi where al.al_estado='Activo' and prom.PROM_CODIGO=al.PROM_CODIGO and prom.PROM_CODIGO=fdi.PROM_CODIGO and fdi.PR_CEDULA=prof.PR_CEDULA and al.AL_cedula=asi.AL_Cedula and prof.PR_CEDULA='" + codigo + "' and to_char(asi.asis_fecharegistro,'yyyy-mm-dd')=to_char((select sysdate from dual),'yyyy-mm-dd') and to_char(asi.asis_fecharegistro,'yyyy-mm-dd')=to_char(fdi.FD_FECHA,'yyyy-mm-dd') order by ltrim(al_apellidos)");

        } catch (Exception ex) {
            Logger.getLogger(neg_tomalistalumno.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error al obtener registro");
        }
        return v.crs3;
    }


    @Override
    public void actualizar(String cod, Integer es1, Integer es2, String obs) {
        enti.setPe_codigo(cod);
        enti.setEstado1(es1);
        enti.setEstado2(es2);
        enti.setObservacion(obs);
        String sql = "update asistencia_alumno set asis_estado1='" + enti.getEstado1() + "',asis_estado2='" + enti.getEstado2() + "',asis_observacion='" + enti.getObservacion() + "',asis_total=" + (es1 + es2) + " where al_cedula='" + enti.getPe_codigo() + "' and to_char(ASIS_FECHAREGISTRO,'yyyy-MM-dd')=(select to_char(sysdate,'yyyy-MM-dd') from dual) ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl buscar(String cod, String fecha) {
        try {
            v.crs3 = (CachedRowSetImpl) ejec.rellena2("select asis_codigo, asi.AL_Cedula,(al.AL_APELLIDOS||' '||al.al_nombres)as al_nombres,asi.ASIS_ESTADO1,asi.ASIS_ESTADO2,asi.ASIS_OBSERVACION,al.AL_CEDULA,asi.ASIS_FECHA from alumno al,asistencia_alumno asi where al.AL_Cedula=asi.AL_Cedula and  to_char(asi.ASIS_FECHA,'yyyy-mm-dd')= '" + fecha + "'  and al.AL_Cedula='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_tomalistalumno.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error al obtener registro");
        }
        return v.crs3;
    }

    @Override
    public void modificar_registro_asistencia(String cod, Integer e1, Integer e2, String ob) {
        enti.setPe_codigo(cod);
        enti.setEstado1(e1);
        enti.setEstado2(e2);
        enti.setObservacion(ob);
        String sql = "update asistencia_alumno set asis_estado1='" + enti.getEstado1() + "',asis_estado2='" + enti.getEstado2() + "',asis_observacion='" + enti.getObservacion() + "',asis_total='" + (e1 + e2) + "' where asis_codigo='" + enti.getPe_codigo() + "' ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl devolver_timbre_profesor(String cedula) {
        try {
            v.crs1 = (CachedRowSetImpl) ejec.rellena2("select to_char(ti.T_ENTRADA2,'HH24:Mi:ss') as t_entrada2,to_char(ti.T_SALIDA2,'HH24:Mi:ss') as t_salida2,ti.T_FECHA from timbre ti,PROFESOR prof where prof.PR_CEDULA=ti.PR_CEDULA and prof.PR_CEDULA='" + cedula + "' and (select to_char(sysdate,'yyyy-mm-dd') from dual)=to_char(ti.T_FECHA,'yyyy-mm-dd')");
        } catch (Exception ex) {
            Logger.getLogger(neg_tomalistalumno.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error al obtener registro");
        }
        return v.crs1;
    }
}
